接續我們昨天的進度,我們得出了data中所有Age為NaN的列表,這樣就可以方便讓我們進行計算了。
在昨天我們用了isnull() 函數來得出了空值為 True、有值為False,如下圖
於是我們就可以寫一個判斷式來做計算。
import pandas as pd
csv = "titanic.csv"
data = pd.read_csv(csv)
age_null=pd.isnull(data.Age)
have_age=data.Age[age_null==False]#(將age_null中結果為False的篩選出來,也就是將有值的拿出來)
age_mean=sum(have_age)/len(have_age)
age_mean
29.69911764705882
我們將age_null(也就是上一張圖的結果)中的False拿出來給have_age,所以have_age裡存的就是data中Age裡有值的數據。
接著我們就可以用have_age來計算平均數了。
雖然我們得出了平均數了,但是有沒有覺的計算的過程比較繁瑣,那有沒有更簡單的方式呢?
答案是有的,我們可以用pandas裡的 mean() 函數,我們只需要簡單的一行就可以將平均數算出來了。
data.Age.mean()
29.69911764705882
可以看到得出來的值是一模一樣的。
有沒有體會到 pandas 的方便呢?
明天開始會繼續用一些例子來演示 pandas 的功能。